1
루비 입출력의 기초로 삼는 스트림
AI035Lesson 6
00:00

루비에서 입력/출력은 단순한 명령어 집합이 아닙니다. 오히려 매우 정교한 스트림 기반 아키텍처구조를 가지고 있습니다. 이 시스템의 핵심에는 IO 클래스가 있으며, 이는 프로그램과 외부 세계 사이의 양방향 채널 역할을 합니다. 파일, 네트워크 소켓, 사용자 터미널과 상호작용하든 간에 루비는 이를 일반적인 스트림으로 취급합니다.

1. 양방향 다리

객체는 통합된 추상화입니다. 운영체제는 읽기와 쓰기에 대해 별도의 IO 파일 디스크립터를 인식하지만(예: 파이프에서처럼), 루비는 이를 하나의 객체로 캡슐화합니다. 이를 통해 양방향으로 원활한 데이터 흐름이 가능해집니다. 파일 디스크립터 읽기 및 쓰기 작업을 위한 파일 디스크립터를 별도로 인식하지만, 루비는 이를 하나의 객체로 캡슐화합니다. 이를 통해 양방향으로 원활한 데이터 흐름이 가능해집니다.

루비 프로그램자원IO 객체

2. 커널 및 표준 필터

커널 커널 모듈은 getsprint메서드를 제공합니다. 이러한 메서드들은 본질적으로 필터 이며, 전역 상수인 STDINSTDOUT로 위임됩니다. 즉, 코드를 변경하지 않고도 운영체제 수준에서 파일이나 네트워크 스트림을 처리하도록 리다이렉션할 수 있습니다.

$$\text{스트림} \rightarrow \text{버퍼} \rightarrow \text{루비 인터프리터}$$

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>